import axios from 'axios'
import EventEmitter from "@/utils/event.js";

// 创建一个 axios 实例
const service = axios.create({
    baseURL: '/api', // 所有的请求地址前缀部分
    timeout: 60000, // 请求超时时间毫秒
    withCredentials: true, // 异步请求携带cookie
    headers: {
        // 设置后端需要的传参类型
        'Content-Type': 'application/json',
        'X-Requested-With': 'XMLHttpRequest',
    },
})

// 添加请求拦截器
service.interceptors.request.use(
    function (config) {
        const token = localStorage.getItem('token');
        if (token) {
            config.headers.token = token
        }
        return config
    },
    function (error) {
        return Promise.reject(error)
    }
)

// 添加响应拦截器
service.interceptors.response.use(
    function (response) {
        const res = response.data

        if (res.code === 401) {
            EventEmitter.emit('NO_LOGIN')
            return Promise.reject(res)
        } else {
            return response.data
        }
    },
    function (error) {
        return Promise.reject(error)
    }
)
export default service